/**
 * 
 */
package meituan;

import java.util.Scanner;

/**
 * @author zhongfang
 *
 */
public class 拼凑钱币 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int n = new Scanner(System.in).nextInt();
		int[] money = { 1, 5, 10 };
		//二维实现
//		long[][] dp = new long[money.length][n + 1];
//		for (int i = 0; i < n + 1; i++) {// 只用1元纸币
//			dp[0][i] = 1;
//		}
//		for (int i = 1; i < money.length; i++) {
//			for (int j = 1; j <= n; j++) {
//				int K = j / money[i];
//				for (int j2 = 0; j2 <= K; j2++) {
//					dp[i][j] += (dp[i - 1][j - j2 * money[i]]);
//				}
//			}
//		}
//		System.out.println(dp[money.length - 1][n]);

		//一维实现----因为后者的覆盖不影响前面的
		int[] dp=new int[n+1];
		for (int i = 0; i < dp.length; i++) {
			dp[i]=1;
		}
		for (int i = 1; i < money.length; i++) {
			for (int j = money[i]; j <= n; j++) {
				dp[j]=dp[j]+dp[j-money[i]];
			}
		}
		for (int i : dp) {
			System.out.println(i);
		}
		System.out.println(dp[n]);
	}
}
